/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package controller;

import java.util.List;
import javax.servlet.http.HttpServletRequest;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
import service.impl.UsuarioServiceImpl;
import entity.Usuario;

@Controller
public class UsuarioController {
    
    private UsuarioServiceImpl UsuarioServiceImpl;

    public void setUsuarioServiceImpl(UsuarioServiceImpl UsuarioServiceImpl) {
        this.UsuarioServiceImpl = UsuarioServiceImpl;
    }
    
    @RequestMapping(params="accion=qry")
    public ModelAndView query(){
        List<Usuario> list = UsuarioServiceImpl.buscarTodos();
        ModelAndView mav = new ModelAndView("ListarUsuario");
        mav.addObject("list",list);
        Usuario Usuario = new Usuario();
        mav.addObject("Usuario",Usuario);
        return mav;
    }
    
    @RequestMapping(params="accion=fnd")
    public ModelAndView find(@ModelAttribute Usuario Usuario){
        List<Usuario> list = UsuarioServiceImpl.buscar(Usuario);
        ModelAndView mav = new ModelAndView("ListarUsuario");
        mav.addObject("list",list);
        Usuario Usuario1 = new Usuario();
        mav.addObject("Usuario",Usuario1);
        return mav;
    }
        
    @RequestMapping(params="accion=ins1")
    public ModelAndView insert1(){
        ModelAndView mav = new ModelAndView("IngresarUsuario");
        Usuario Usuario = new Usuario();
        mav.addObject("Usuario",Usuario);
        return mav;
    }
    
    @RequestMapping(params="accion=ins2")
    public ModelAndView insert2(@ModelAttribute Usuario Usuario){
        Integer result = UsuarioServiceImpl.insertar(Usuario);
        result = 0;
        List<Usuario> list = UsuarioServiceImpl.buscarTodos();
        ModelAndView mav = new ModelAndView("ListarUsuario");
        mav.addObject("list",list);
        Usuario Usuarios = new Usuario();
        mav.addObject("Usuario",Usuarios);
        return mav;
    }
    
    @RequestMapping(params="accion=insInicial1")
    public ModelAndView insertInicial1(){
        ModelAndView mav = new ModelAndView("IngresarUsuarioInicial");
        Usuario Usuario = new Usuario();
        mav.addObject("Usuario",Usuario);
        return mav;
    }
    
    @RequestMapping(params="accion=insInicial2")
    public ModelAndView insertInicial2(@ModelAttribute Usuario Usuario){
        Integer result = UsuarioServiceImpl.insertarInicial(Usuario);
        result = 0;
        ModelAndView mav = new ModelAndView("index");
        Usuario usuario= new Usuario();
        mav.addObject("usuario",usuario);
        return mav;
    }
    
    @RequestMapping(params="accion=del")
    public ModelAndView delete(HttpServletRequest request){
        String id = request.getParameter("id");
        if(id!=null){
            UsuarioServiceImpl.eliminar(String.valueOf(id));
        }
        List<Usuario> list = UsuarioServiceImpl.buscarTodos();
        ModelAndView mav = new ModelAndView("ListarUsuario");
        mav.addObject("list",list);
        Usuario Usuarios = new Usuario();
        mav.addObject("Usuario",Usuarios);
        return mav;
    }
    
    @RequestMapping(params="accion=upd1")
    public ModelAndView update1(HttpServletRequest request){
        String id = request.getParameter("id");
        Usuario Usuario = null;
        if(id != null){
            Usuario = UsuarioServiceImpl.buscarPorId(id);
        }
        List<Usuario> list = UsuarioServiceImpl.buscarTodos();
        ModelAndView mav = new ModelAndView("EditarUsuario");
        mav.addObject("list",list);
        mav.addObject("Usuario",Usuario);
        return mav;
    }
    
    @RequestMapping(params="accion=upd2")
    public ModelAndView update2(@ModelAttribute Usuario Usuario){
        UsuarioServiceImpl.actualizar(Usuario);
        List<Usuario> list = UsuarioServiceImpl.buscarTodos();
        ModelAndView mav = new ModelAndView("ListarUsuario");
        mav.addObject("list",list);
        Usuario Usuarios = new Usuario();
        mav.addObject("Usuario",Usuarios);
        return mav;
    }
    
     @RequestMapping(params="accion=ins3")
    public ModelAndView insert2(){
        ModelAndView mav = new ModelAndView("IngresarPerfil");
        Usuario Usuario = new Usuario();
        mav.addObject("Usuario",Usuario);
        return mav;
    }
     
     @RequestMapping(params="accion=login")
    public ModelAndView login(){
//        int list = usuarioServiceImpl.login(Usuario);
        ModelAndView mav = new ModelAndView("index");
        Usuario usuario= new Usuario();
        mav.addObject("usuario",usuario);
        
        return mav;
    }
    
    @RequestMapping(params="accion=bienvenida")
    public ModelAndView bienvenida(@ModelAttribute Usuario usuario){
        int existe = UsuarioServiceImpl.login(usuario);
        Usuario list= new Usuario();
        
        ModelAndView mav = null;
        System.out.println("Cantidad ------------------> " + existe);
        if (existe > 0){
        list= UsuarioServiceImpl.obtenerPerfil(usuario);
            System.out.println("codigo " + list.getCodper());
        String perfil = String.valueOf(list.getCodper());
            System.out.println("codigos "+ perfil);
        if ((perfil).equals("1.0")){
            System.out.println("Union1");
        mav = new ModelAndView("union1");
        }else if((perfil).equals("2.0")){
            mav = new ModelAndView("union2");
            System.out.println("Union2");
        }else {
            mav = new ModelAndView("union3");
            System.out.println("Union3");
        }
        
        
        return mav;
        }else {
        mav = new ModelAndView("index");  
        return mav;
        }
               
        
    }
}
